1. Technical Field
The invention relates to Internet protocol networking in a computer environment. More particularly, the invention relates to the routing and load balancing of traffic in a Domain Name System in a computer environment.
2. Description of the Prior Art
Global traffic management systems are at the beginning formulative stages of development. Most systems do not have to manage a large amount of traffic. The systems either do not deal with persistence or synchronization of DNS servers or, if they do, they perform the tasks in a very inefficient and cumbersome way by shipping huge tables between servers.
Domain Name System (DNS) servers in the Internet and in Intranets are sent requests to determine machine IP addresses associated with a given name. DNS servers can perform load balancing by returning different IP addresses for different requests to a server and can also be modified to return IP addresses that are close to an end user in terms of latency.
For example, assume three IP addresses 1.1.1.1, 1.1.1.2 and 1.1.1.3 are valid IP addresses for www.speedera.com. When a DNS server receives a request for the IP address of www.speedera.com, it could return 1.1.1.1 for the first request, 1.1.1.2 request for the second address, etc. This would cause requests for www.speedera.com to be distributed among the three IP addresses and among three machines, if each IP address represents a different machine.
If the DNS server has access to information about the load on the three machines, it could return IP addresses based on machine load to perform load balancing intelligently. Also, if a DNS server has access to information about the latency between various points on the network, it can determine which IP address(es) to return based on the latency between the machine with that IP address and the machine where the request came from.
These features are commonly used in combination to create an advanced load balancing DNS server. More advanced DNS servers can provide support for “persistence”. Some services, such as web shopping carts, require persistence.
“Persistence” is when the first time a request is made for an IP address of a hostname from a given user, a persistent entry is stored on the server that ties that user to the IP address. Subsequent requests from the same user for the IP address of the domain name first requested will return the same IP address that was returned the first time, as long as that IP address can handle the request.
To handle persistence, a DNS server can maintain a table that contains a mapping of machine IP addresses and hostnames to IP addresses. When processing a DNS request, the DNS server consults the table to determine if a persistent entry exists that ties a machine IP address (identifying a group of users) and hostname to IP address.
Persistent tables can be very large. Typically, when multiple DNS servers manage a hostname, each individual server needs access to the persistence table. This leads to a significant amount of network traffic overhead when the tables are kept synchronized between multiple servers.
Most existing approaches simply do not allow more than one load balancing DNS server to be authoritative for a given domain name when using persistence. Persistence is supported when only a single DNS server is authoritative for a given domain name in these approaches.
Other existing solutions that support persistence when more than one DNS server is authoritative for a given domain name, work by keeping all the persistence tables in the authoritative DNS servers synchronized. When a persistent entry is added or deleted, it must be added or deleted to all DNS servers that are authoritative for a given domain name.
Similarly, latency tables and other tables that are keyed off a user group (Client DNS Server) are either kept in a single location or are synchronized across multiple servers where the full latency table is kept on each server.
It would be advantageous to provide a scalable domain name system with persistence and load balancing that provides both persistence and load balancing on a DNS server and reduces the amount of information stored on the server. It would further be advantageous to provide a scalable domain name system with persistence and load balancing that reduces the traffic across the network when table synchronization is used.